package com.example.loginmvvm.model

import android.util.Log
import com.example.loginmvvm.http.API
import java.util.*


class UserModel() {

    companion object {
        const val START_LOGIN_LOADING = 0
        const val START_LOGIN_SUCCESS = 1
        const val START_LOGIN_FAILED = 2
    }

    private val api by lazy {
        API()
    }

    private val random = Random()

    /**
     * 登录操作
     */
    fun doLogin(user: String, pass: String, block: (Int) -> Unit) {
        block.invoke(UserModel.START_LOGIN_LOADING)
        //开始去调用登录的API
        //有结果，此操作为耗时操作
        //向服务器提交数据，这个时候会使用非主线程去操作
        //异步操作，通知ui的时候，要切换成主线程，否则报错
        val randomValue = random.nextInt(2)
        if (randomValue == 0) {
            block.invoke(UserModel.START_LOGIN_SUCCESS)
        } else {
            block.invoke(UserModel.START_LOGIN_FAILED)
        }
    }

    fun checkUserState(user: String, block: (Int) -> Unit) {
        //0账号已存在
        //1账号不存在
        block.invoke(random.nextInt(2))
    }
}